# -*- coding: utf-8 -*-
# Created by zhangyanqi on 2018/4/15

"""
给定一个整数数组，除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。

备注：
你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗？


思路：
使用dict
"""


class Solution:
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        mydict = {}
        for n in nums:
            s = str(n)
            n = mydict.get(s, 0)
            if n == 0:
                mydict[s] = 1
            if n == 1:
                mydict[s] = 2
        for k, v in mydict.items():
            if v == 1:
                return int(k)


if __name__ == "__main__":
    s = Solution()
    number = s.singleNumber([0, 0, -1, 1, 1])
    print(number)
